#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
应用程序框架分析器 - 服务器入口
启动API服务器
"""

import argparse
import sys
import os
from src.api.main import start_server
from src.api.config import SERVER_HOST, SERVER_PORT, DEBUG_MODE


def main():
    """主函数"""
    parser = argparse.ArgumentParser(description='应用程序框架分析器服务器')
    parser.add_argument('--host', type=str, default=SERVER_HOST, help='服务器监听地址')
    parser.add_argument('--port', type=int, default=None, help='服务器监听端口')
    parser.add_argument('--debug', action='store_true', default=DEBUG_MODE, help='启用调试模式')
    parser.add_argument('--config', type=str, help='指定配置文件路径（尚未实现）')
    parser.add_argument('--env', type=str, choices=['development', 'production'], default='development', 
                        help='运行环境(development或production)')
    
    args = parser.parse_args()
    
    # 根据环境设置默认端口
    if args.port is None:
        if args.env == 'production':
            args.port = 4007
        else:
            args.port = SERVER_PORT
    
    # 在生产环境中禁用调试模式
    if args.env == 'production':
        args.debug = False
    
    # 设置环境变量以便其他模块可以访问
    os.environ['API_ENV'] = args.env
    
    try:
        print(f"正在以{args.env}模式启动应用程序框架分析器服务器...")
        print(f"服务器将在 http://{args.host}:{args.port}/ 上运行")
        start_server(host=args.host, port=args.port, debug=args.debug)
    except KeyboardInterrupt:
        print("\n服务器已停止")
        sys.exit(0)
    except Exception as e:
        print(f"启动服务器时发生错误: {e}")
        sys.exit(1)


if __name__ == "__main__":
    main() 